﻿Imports CapaLogica.CL.UtilidadesGenerales
Imports CapaLogica.CL.Usuario
Imports CapaLogica.CL.Grupo

Public Class frmConsultarGrupo

    Private idGrupo As Integer

    Public Sub New(ByRef pIdGrupo As Integer, ByRef pencabezado As String, ByRef pGrupo As Dictionary(Of String, Object),
                   ByRef pEstudiantes As List(Of Informacion), ByRef pProfesores As List(Of Informacion))

        InitializeComponent()
        idGrupo = pIdGrupo
        Me.Text = pencabezado
        Me.lblTitulo.Text = pencabezado
        Me.lblTitulo.Left = (Me.ClientSize.Width / 2) - (lblTitulo.Width / 2)

        llenarLista(lbxEstudiantes, pEstudiantes)
        llenarLista(lbxProfesoresSeleccionados, pProfesores)
        nudNumGrupo.Value = Val(pGrupo.Item("numGrupo"))
        lblCurso.Text = "Curso: " + pGrupo.Item("curso")
        llenarLista(lbxProfesores, GestorUsuario.listarTodosLosProfesores())

        eliminarElementosRepetidos(lbxProfesores, lbxProfesoresSeleccionados)

    End Sub


    Private Sub btnAsociar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAsociar.Click
        If lbxProfesoresSeleccionados.SelectedIndex > -1 Then
            cambiarElementosDeListas(lbxProfesoresSeleccionados, lbxProfesores)
        Else
            MsgBox("Debe seleccionar al menos un profesor para cambiarlo de lista.", MsgBoxStyle.Exclamation, "Error")
        End If
    End Sub

    Private Sub btnDesasociar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDesasociar.Click
        If lbxProfesores.SelectedIndex > -1 Then
            cambiarElementosDeListas(lbxProfesores, lbxProfesoresSeleccionados)
        Else
            MsgBox("Debe seleccionar al menos un profesor para cambiarlo de lista.", MsgBoxStyle.Exclamation, "Error")
        End If
    End Sub

    Private Sub tsbGuardarGrupo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tsbGuardarGrupo.Click
        Try
            If lbxProfesoresSeleccionados.Items.Count <> 0 Then
                Dim button As DialogResult = MessageBox.Show("¿Desea guardar los cambios? Si un profesor ya no esta asociado a un grupo se le borrará su Foro con respectivos temas y todas sus relaciones.",
                                                                              Me.Text, MessageBoxButtons.YesNoCancel, MessageBoxIcon.Information)
                If button = DialogResult.Yes Then
                    Try

                        GestorGrupo.modificarGrupo(idGrupo, obtenerIdsDeListBox(lbxProfesoresSeleccionados), nudNumGrupo.Value)
                        MsgBox("¡Se han guardado los cambios!", MsgBoxStyle.Information, "Grupo")
                        Me.Dispose()
                    Catch ex As Exception
                        MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Error")
                    End Try

                Else
                    MsgBox("¡El estudiante no ha sido matriculado!", MsgBoxStyle.Information, "Grupo")

                End If

            Else
                MsgBox("Debe seleccionar al menos un profesor del grupo.", MsgBoxStyle.Exclamation, "Error")
            End If
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Error")
        End Try
    End Sub

    Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton1.Click
        Me.Dispose()
    End Sub
End Class